____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Rewrite-Engine
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Eine Rewrite-Engine (von englisch rewrite, βumschreibenβ und engine, βMaschineβ) ermΓΆglicht es, an einen Webserver gerichtete Anfragen intern umzuschreiben oder extern weiterzuleiten. FΓΌr den Apache-Webserver erledigt das Softwaremodul mod_rewrite diese Aufgabe. Andere Webserver wie etwa Microsoft IIS, Nginx, Lighttpd oder Hiawatha Webserver bieten Γ€hnliche Funktionen.
Geschaffen wurde diese FunktionalitΓ€t, um nach auΓen ein von internen Faktoren unabhΓ€ngiges Adressierungsschema zur VerfΓΌgung stellen zu kΓΆnnen, sodass beispielsweise selbst bei einer Γnderung der Dateihierarchie die URLs weiterhin gΓΌltig bleiben. Man spricht in diesem Fall auch von Permanentlinks.
Die Rewrite-Engines erlauben, die Adressumleitung von zusΓ€tzlichen Bedingungen neben der angefragten URL abhΓ€ngig zu machen, zum Beispiel von der referenzierenden URL, der User-Agent-Kennung oder der IP-Adresse des anfragenden Clients. Auf diese Weise kΓΆnnen beispielsweise Weiterleitungen oder auch Cloaking realisiert werden.
Contents
β’ nginx
β’ Lighttpd
β’ Weblinks
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Beispielanwendung
Rewrite-Engines werden hΓ€ufig genutzt, um Ressourcen mit dynamischen URLs unter Alternativadressen erreichbar zu machen.
Die Ressource mit der internen, technisch bedingten Adresse
/w/index.php?title=Beispiel
ist so beispielsweise auch unter folgender Adresse erreichbar
/wiki/Beispiel
Nach auΓen werden dann statt der dynamischen, parametrisierten Adressen scheinbar statische Adressen verwendet. Dies ist nΓΌtzlich, da kurze, selbsterklΓ€rende Adressen meist als lesbarer, einfacher zu merken und ganz allgemein als vertrauenswΓΌrdiger eingestuft werden. Man spricht in diesem Fall auch von Clean URLs.
Die Umsetzung des gezeigten Anwendungsfalls variiert je nach verwendeter Webserver-Software und Kontext. In der Regel werden regulΓ€re AusdrΓΌcke verwendet, um ein Suchmuster zu definieren, das auf ein gewΓΌnschtes Zielmuster angewendet wird. Das Suchmuster ist dabei die scheinbare statische Adresse. Das Zielmuster ist die interne oder physikalische Ressource. Die dynamischen Bereiche, also beispielsweise die Artikel-ID eines Artikels aus dem Suchmuster, werden dabei meist mit Hilfe von Variablen auf das Zielmuster ΓΌbertragen.
Apache/mod_rewrite
RewriteEngine on
RewriteRule ^/wiki/(.*)$ /w/index.php?title=$1
nginx
location /wiki {
rewrite ^/wiki/(.*)$ /index.php?title=$1;
}
Lighttpd
url.rewrite-once = (
"^/wiki/(.*)$" => "/index.php?title=$1"
)
Der in Fettschrift markierte Teil des regulΓ€ren Ausdrucks bedeutet, dass jedes beliebige Zeichen in die Variable $1 geschrieben und somit auf das Zielmuster angewendet wird.
Weblinks
β’ mod_rewrite-Modul in der Apache-Dokumentation (englisch)
β’ ISAPI_Rewrite-Modul fΓΌr IIS (englisch)
β’ rewrite-Modul im Nginx-Wiki (englisch)
β’ mod_rewrite-Modul in der Lighttpd-Dokumentation (englisch)
β’ mod_rewrite im Selfhtml-Wiki (deutsch)
β’ Tim Berners-Lee: Hypertext Style: Cool URIs donβt change. (englisch)